/**	
 * <br>
 * Copyright 2014 IFlyTek.All rights reserved.<br>
 * <br>			 
 * Package: com.hulk.web.log <br>
 * FileName: LogAspect.java <br>
 * <br>
 * @version
 * @author Liuxingwen
 * @created 2016年9月5日
 * @last Modified 
 * @history
 */
package com.hulk.log;

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.springframework.stereotype.Component;

/**
 *  {该处说明该构造函数的含义及作用}
 *  @author Liuxingwen
 *  @created 2016年9月5日 下午9:20:03
 *  @lastModified       
 *  @history           
 */


@Component("logAspect")//让这个切面类被Spring所管理
//@Aspect
public class LogAspect {

    public void logStart(JoinPoint jp) {
        //得到执行的对象
        System.out.println(jp.getTarget());
        //得到执行的方法
        System.out.println(jp.getSignature().getName());
        Logger.info("加入日志");
        System.out.println("=参数开始==================================");
        for (int i = 0; i < jp.getArgs().length; i++) {
            System.out.println(jp.getArgs()[i]);
        }
        System.out.println("=参数结束==================================");
        System.out.println(jp.getSignature().getDeclaringType());
        System.out.println(jp.getSignature().getDeclaringTypeName());
        System.out.println(jp.getSignature().getName());

        System.out.println("=====checkSecurity====");
    }

    public void logEnd(JoinPoint jp) {
        Logger.info("方法调用结束加入日志");
    }

    public void logAround(ProceedingJoinPoint pjp) throws Throwable {
//        Logger.info("开始在Around中加入日志");
//        pjp.proceed();//执行程序
//        Logger.info("结束Around");
    }

    //        @Around("recordLog()")
    public Object aroundLogCalls(ProceedingJoinPoint jp) throws Throwable {
        Logger.info("正常运行");
        return jp.proceed();//执行程序
    }
}
